package com.gadgets.busi.bm03;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

/********************************************
 * 系统名称: 商业汇票服务平台第4版(BBSP4)
 * 模块名称: TODO
 * 软件版权: 恒生电子股份有限公司
 * 源程序名：batchFormatEncode.java
 * 功能说明: 
 * 开发人员: jinxb17178
 * 开发时间: Mar 18, 2020 4:18:38 PM
 * 审核人员:
 * 相关文档:
 * 修改记录: 修改日期    修改人员    修改说明
 * v4.0.0.0 Mar 18, 2020-01 jinxb17178 TODO  修改单号
 *******************************************/

/**
 * 功能说明：TODO
 *
 * @date Mar 18, 2020
 * @author jinxb17178
 * @email jinxb17178@hundsun.com
 * 
 */
public class batchFormatEncode {

	public static void main(String[] args) {
		String URL = "F:\\Code\\Hundsun\\cpes4.0\\common\\bbsp-cp09\\bbsp-cp09-cpes\\src\\main\\resources\\schemas\\cp09\\up\\com\\hundsun\\bbsp\\cpes\\draft\\send\\schema\\nes\\NES015001xsd";
        listEncode(URL);
        System.out.println("O - V - E - R");
	}

	/**
	 * TODO
	 *
	 * @param URL
	 */
	private static void listEncode(String URL) {
		//System.out.println(URL);
		File[] fileName= new File(URL).listFiles();
        if (null==fileName || fileName.length==0) {
			return;
		}
        String encode = "";
        for (File file : fileName) {
        	String name = file.getPath();
        	//System.out.println(name);
        	if (file.isFile()) {
        		if (name.endsWith(".class") || name.endsWith(".jar") || name.endsWith(".xml")) {
					continue;
				}
        		try {					
        			encode=EncodingDetect.getJavaEncode(name);
				} catch (Exception e) {
					System.out.println("**********\t"+name);
					//e.printStackTrace();
					continue;
				}
        		if (!"UTF-8".equals(encode) && !"ASCII".equals(encode)) {
        			System.out.println(encode+"\t"+name);
        			formatFile(name,encode);
				}
        	}else {
        		if (name.endsWith("target")) {
					continue;
				}
        		listEncode(name);
			}
        }
	}
	
	private static void formatFile(String file, String code) {		
		try {
			String myCode = code!=null&&!"".equals(code) ? code : "UTF8";
			InputStreamReader read = new InputStreamReader(new FileInputStream(file), myCode);
			BufferedReader fr = new BufferedReader(read);			
			
			String line = null;
			List<String> listfile = new ArrayList<String>();
			
			// 读取每一行，如果结束了，line会为空
			while ((line = fr.readLine()) != null) {
				/*if (line.trim().length() <= 0) {
					listfile.add(line);
    				continue;
				}*/
				/*if(flag==1) {
				    line=line.substring(1);//去掉文件头
				    flag++;
			    }*/
				// 每一行创建一个Student对象，并存入数组中
				//System.out.println(line);
				listfile.add(line);
			}
			fr.close();
			
			
			//创建输出流
			OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(file),"UTF-8");
			//打印列表
			for (String linelist : listfile) {
				osw.write(linelist);
				osw.write("\r\n");
			}
			//关闭输出流
			osw.flush();
			osw.close();
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}
